Systems and methods for a journal page

ABSTRACT

An embodiment relates generally to a method of displaying information. The method includes monitoring any user activity within at least one application executing on a computer and detecting a completion of a user activity. The method also includes creating a link to the completed user activity and placing in the link in a time-ordered sequential basis in a journal section of a desktop of the computer.

FIELD

This invention relates generally to visual desktops for computersystems, more particularly to systems and methods for a journal page forapplications executing on computer systems.

DESCRIPTION OF THE RELATED ART

The use of the Internet has seen rapid growth over the last few years,fueled in significant part by availability and use of web browsingsoftware that permits access, via a graphical user interface (“GUI”) tonetwork servers which are part of the World Wide Web (“Web”). Theseservers provide access to documents known as “web pages” or “web sites”using a Hypertext Transfer Protocol (“HTTP”). HTTP is an applicationprotocol that provides user access to these web pages having variousformats including text, graphics, images, sound, and dynamic features.Hypertext Markup Language (“HTML”) is the standard page descriptionlanguage used with HTTP and provides basis document formatting. HTMLallows a web page developer to specify these hypertext links to otherservers and to other files.

A user using an HTML-compliant browser may specify a link via a UniformResource Locator (“URL”). When the user does so, the client browsermakes a transmission control protocol/Interface protocol (“TCP/IP”)request to the server associated with the link and consequently receivesthe corresponding web page formatted according to HTML. Note that XMLcan be a substitute for HTML.

The developers of prior art web browsers such as “MOSAIC”, “NETSCAPENAVIGATOR”, and “MICROSOFT INTERNET EXPLORER” have focused their effortson providing a rapid and efficient means for a user to access web pageshaving sophisticated graphical capabilities. Such web pages typicallyoffer a wide variety of attention-generating features which includesound, animated graphics, banner advertisements, and continuouslyupdated dynamic content, often tailored to a user's personal interests,side by side with lexically unordered hypertext links.

As websites proliferate and information grows increasing on-line, usershave increasing wider variety of applications, data and websites to use.A user using a conventional browser can use the Web for information andtools. As a user browses the Web, she may locate interesting websites.However, a user may not immediately recall a particular website afterone or two days. Accordingly, the user may have to recreate the searchparameters to locate the particular website. Similarly, as a user workson files with applications (e.g., word processing, spreadsheet, etc.) onlocal files and remote files. Users may find it difficult to locate arecently used file after working on other files or after one or twodays.

Accordingly, there is a need in the art for a mechanism for users toquickly locate recently websites and/or files without recreating theconditions for a search or browsing.

BRIEF DESCRIPTION OF THE DRAWINGS

Various features of the embodiments can be more filly appreciated, asthe same become better understood with reference to the followingdetailed description of the embodiments when considered in connectionwith the accompanying figures, in which:

FIG. 1 depicts an exemplary system in accordance with variousembodiments;

FIG. 2 illustrates an exemplary software environment in accordance withvarious embodiments;

FIG. 3 depicts an exemplary journal page in accordance with variousembodiments;

FIG. 4 illustrates an exemplary detailed block diagram of a journalingmodule in accordance with various embodiments;

FIG. 5AB, collectively, depict an exemplary flow diagram in accordancewith various embodiments; and

FIG. 6 illustrates an exemplary computing platform in accordance withvarious embodiment.

It will be appreciated that for simplicity and clarity of illustration,elements shown in the drawings have not necessarily been drawn to scale.For example, the dimensions of some of the elements are exaggeratedrelative to each other. Further, where considered appropriate, referencenumbers have been repeated among the drawings to indicate correspondingelements and a repetitive explanation thereof will be omitted.

DETAILED DESCRIPTION OF EMBODIMENTS

For simplicity and illustrative purposes, the principles of the presentinvention are described by referring mainly to exemplary embodimentsthereof. However, one of ordinary skill in the art would readilyrecognize that the same principles are equally applicable to, and can beimplemented in, all types computer systems, and that any such variationsdo not depart from the true spirit and scope of the present invention.Moreover, in the following detailed description, references are made tothe accompanying figures, which illustrate specific embodiments.Electrical, mechanical, logical and structural changes may be made tothe embodiments without departing from the spirit and scope of thepresent invention. The following detailed description is, therefore, notto be taken in a limiting sense and the scope of the present inventionis defined by the appended claims and their equivalents.

Embodiments relate generally to systems and methods for a journal page.More particularly, a journal module can be configured to provide ajournal listing of local activity of the user on a computer as well asthe on-line activity of the user. For instance, the journal module cantrack which applications and files accessed locally and on-line as wellas websites visited, i.e., integrating results into a single page. Whenthe user completes an activity, the journal module can place a link tothe completed activity in a journal section of the journal page.Accordingly, a user can maintain a listing of completed activities. Thejournal page can be implemented within a browser or as part of adesktop. In some embodiments, the journal page is saved and is retrievedwhen the user logs-back in.

A journal section for completed local and on-line activities can assista user. For instance, a user can be working on a project which caninvolve several applications and associated files. A typical workflow incompleting the project may involve a user working on file A associatedwith application X and then working on file B associated withapplication Y. The user may receive additional information to updatefile A while working on file B. Accordingly, the user can activate thelink to file A in the journal section to bring up file A in applicationX to update the information.

Another example of the journal section assisting a user can be on-linebrowsing. More specifically, a user may visit a number of websitesduring a day. Instead of bookmarking a selected website, the user isfree to browse the website knowing that the journaling module cancapture the link to the website. A use can avoid cluttering the bookmarksection of the browser and the time involved in maintaining bookmarks.

FIG. 1 illustrates an exemplary system 100 in accordance with variousembodiments. It should be readily apparent to those of ordinary skill inthe art that the system 100 depicted in FIG. 1 represents a generalizedschematic illustration and that other components may be added orexisting components may be removed or modified. Moreover, the system 100may be implemented using software components, hardware components, orcombinations thereof.

As shown in FIG. 1, the system 100 can comprise a computer device 105, aa network 110 and web sites 115. The computer device 105 can be adesktop computer, laptop, client, or other similar computing platform asknown to those skilled in the art. In some embodiments, the computerdevice 105 can be client of a server 120 and/or part of a local areanetwork 125.

The computer device 105 can be coupled to the network 110. The network110 can be a local area network, a wide area network or combinationsthereof implementing network protocols such as TCP/IP, ATM, SONET, orother known network protocols The network 110 can also be part of anetwork that provides Internet access for users. The network 110 can beconfigured to provide a communication conduit for data, services, andapplications to be exchanged between the computer device 105 andwebsites 115 The computer device 105 can be coupled to the network 110through a network interface (not shown). The network interface cancomply with the protocol being used within the network 110.

Similarly, in some embodiments, the computer device 105 can couple withlocal network 125 through the network interface to communicate withserver 120. The local network 125 can be a local area networkimplementing a local area network protocol such as Ethernet, X.25 orother similar protocols known to those skilled in the art. The server120 can be implemented with servers from various manufacturers such asDell, Sun Microsystems, Fujitsu, Transmeta, AMD or other similar OEMproviders.

The websites 115 can be any website located on the Web. Websites 115 canbe portals, on-line stores, manufacturer websites, or any other type ofwebsites. The websites 120 can be accessed by executing a browser tolocate the websites 115 using the respective URLs of the website 115 ora search engine.

In some embodiments, the computer device 105 can store and execute ajournal module 130 as part of an application such as browser or adesktop. The journal module 130 can be instantiated during theactivation of the application by a user. The journal module 130 can beconfigured to interface with the underlying operating system and GUM APIof the underlying application.

The journal module 130 can be configured to provide a journal listing oflocal activity and on-line activity of the user on the computer device105. For instance, the journal module 130 can monitor which applicationsand files are accessed locally and on-line as well as websites visited.When the user completes an activity, the journal module 130 can place alink to the completed activity in a journal section of an applicationsuch as a browser of desktop executing on the computer device 105.Unlike conventional browsers that default to local history search (e.g.,URL address bar) or a remote search (e.g., Firefox start page), thejournal page integrates the results from both into a single page. By theend of the session, a user can have a listing of the activities. In someembodiments, the journal section is saved and is retrieved when the userlogs-back in.

FIG. 2 illustrates an exemplary software environment 200 in accordancewith various embodiments. It should be readily apparent to those ofordinary skill in the art that software environment 200 depicted in FIG.2 represents a generalized schematic illustration and that othercomponents may be added or existing components may be removed ormodified.

As shown in FIG. 2, software environment 200 can include an operatingsystem 205. Operating system 205 can be a version of a Linux™, UNIX™,Windows™, or similar multi-tasking, multi-user operating system. Arun-time environment (not shown) can be configured to execute onoperating system 205. The run-time environment can provide a set ofsoftware that supports the execution of applications/programs. Therun-time environment can also comprise an application program interface(“API”) 210 and a complementary API (not shown) within an applicationspace 215. API 210 can be configured to provide a set of routines thatapplication space 215 uses to request lower-level services performed byoperating system 205. Operating system 205 can include a kernel (notshown) and device drivers 220. The kernel can be configured to providesecure access to the underlying hardware of a processor through thedevice drivers 220.

Application space 215 can represent the space where a user can executeapplications given the allotted memory space as determined by a systemadministrator of software environment 200. Within application space 215,a user can open and execute a number of applications such as anapplication 225, where the application 225 can be a browser or a desktopapplication. The application 225 can provide a single graphical userinterface (“GUI”)to organize, search, and utilize applications and/ordata. For example, the application 225 can include a variety of menusthat allow a user to manipulate applications and/or data, to controlperipherals such as scanner or printer, etc.

Within the application space 215, the journal module 130 can beexecuting and monitoring the activity of a user. As previously describedand in further detail below, the journal module 130 monitors whichapplications and files are accessed locally and on-line as well aswebsites visited. When the user completes an activity, the journalmodule 130 can place a link, i.e., a journal link, to the completedactivity in a journal section of the application 225 executing on thecomputer device 105. The journal link can include a an icon to thecompleted application (or website) and a URL to the location of theclosed file (or website).

FIG. 3 depicts an exemplary a journal page 300 for the application 225in accordance with various embodiments. It should be readily apparent tothose of ordinary skill in the art that the journal page 300 depicted inFIG. 3 represents a generalized schematic illustration and that othercomponents may be added or existing components may be removed ormodified.

As shown in FIG. 3, the journal page 300 can comprise a menu bar 305, anavigation bar 310, a search bar 315, a top site section 320 and ajournal section 325. The journal page 300 can be implemented with amarkup language such as SGML, HTML, XML or other similar languages. Thejournal page 300 can also be created using GUI interface toolkits orvisual programming languages.

The menu bar 305 can be configured to provide menu options for the usersuch as file operations, print functions, option settings, viewingoptions, and help option. The menu bar 305 can be user-configurablewhich allows the user to add or delete menu options.

The navigation bar 310 can be configured to permit a user to enter URLsto direct the journal page 300 to a website. The search bar 315 can beconfigured to allow a user to enter terms for a search at a designatedsearch engine.

The top site section 320 can he configured to display a list of the mostpopular websites visited by the user. The list of websites, i.e., URLs,can be based on a variety of factors such as time visited, frequency ofvisits, etc.

The journal section 325 can be configured to display a list of recentactivity of the user. Activities can include applications used, filesaccessed (local and remote), websites visited, and other computerrelated activities. For each activity completed, the journal section 325shows a respective journal link with an icon representing theapplication and URL to the accessed file and/or website along with atime stamp.

FIG. 4 illustrates an exemplary block diagram of the journal module 130in accordance with various embodiments. It should be readily apparent tothose of ordinary skill in the art that the journal module 130 depictedin FIG. 4 represents a generalized schematic illustration and that othercomponents may be added or existing components may be removed ormodified.

As shown in FIG. 4, the journal module 130 can comprise a controllermodule 405, an application API 410, a API 415, and a filter module 420.The journal module 130 can be implemented using software components,hardware components or combinations thereof. In software embodiments,the journal module 130 can be implemented using computer languages suchas C, C++, object oriented programming languages or other programminglanguages. In hardware embodiments, the journal module 130 can beimplemented using a processor, microcontroller, an application specificintegrated circuit, EEPROM or other programmable devices.

The controller module 405 can provide the functionality of the journalmodule 130 as previously described and described herein below. Thecontroller module 405 can manage the interactions between theapplication API 410 and the API 415. For instance the controller module405 can receive data from the operating system 405 related to theinitiation and cessation of activity on the computer device 105 throughthe API 215. The controller module 405 can send information to theapplication 225 such as link information and how to render the journalpage 300 through the application API 210.

The application API 210 can be coupled to the controller module 405. Theapplication API 410 can be an interface to the application 225. Thecontroller module 405 can forward data related to completed activitiesto render on the journal page 300. The controller module 405 can alsorender information related to the data to the hot site section 320.

The controller module 405 can be further coupled to the filter module420. The filter module 420 can be configured to apply a filter to theweb pages to determine whether the web pages are to be saved to thejournal section 325. The filter can be instantiated by heuristicalgorithms, which are detailed in co-pending U.S. patent applicationSer. No. ______, entitled “Systems and Methods For Filter Module For aBrowser History”, commonly assigned and inventorship, which isincorporated by reference in its entirety.

The controller module 405 can also be coupled to the API 415. The API415 can be configured to interface with the operating system 205. Thecontroller module 405 can monitor the initiation and termination ofapplications through the API 415.

FIGS. 5A-B collectively illustrate an exemplary flow diagram 500executed by the controller module 405 in accordance with variousembodiments. It should be readily apparent to those of ordinary skill inthe art that the flow diagram depicted in FIGS. 5A-B represent ageneralized schematic illustration and that other steps may be added orexisting steps may be removed or modified.

As shown in FIG. 5A, the controller module 405 can be configured todetect the initiation of an activity, in step 505. The controller module405 can also log the activity into a data structure. For example, if auser initiates a word processing application, the controller module 405can monitor the operating system 205 for when the user initiates anapplication or other activity. The controller module 405 can then enterthe activity into the data structure.

In step 510, the controller module 405 can then log the initiation timeinto the data structure and continues to monitor the activities withinthe data structure.

In step 515, the controller module 405 can detect a change in any of themonitored activities, in step 520. Referring to FIG. 5B, the controllermodule 405 can determine whether the event is an end of activity, instep 525. If the event is an end of activity, the controller module canlog the end time in the data structure, in step 530. The controllermodule 405 can then generate a journal link to the file or website/webpage that was just completed, in step 535. The journal link can containan icon that is associated with the application as well as URL for thelocation of the file or website/web page. Subsequently, the controllermodule 405 can send the generated journal link to the journal section325 of the journal page 300, in step 540. The controller module 405 canthen return to the processing of step 505.

Otherwise, returning to step 525, if the event is not an end ofactivity, the controller module 405 can determine whether the event is afile change, in step 545. If the event is a file change, the controllermodule 405 can be configured to proceed to the processing associatedwith step 530. Otherwise, the controller module 405 can be configured todetermine whether the event was a website or web page change, in step550. If the event If the event was a website or web page change, thecontroller module 405 can determine whether visited web page should besaved to the journal section 325 by applying the filter module 420 tothe visited web page, in step 555.

If the website page should be saved, the controller module 405 canproceed to the processing associated with step 530. Otherwise, thecontroller module 405 can proceed with the processing of step 505 (seeFIG. 5A). Returning to step 550, if the event is not a website change,the controller module 405 can be configured to save the current state ofthe journal page 300 to be loaded up during the next session, instep560. Subsequently, the controller module 405 can be configured toshut down.

FIG. 6 depicts an exemplary block diagram of a computer device 105 wherean embodiment may be practiced. The functions of the journaling module130 may be implemented in program code and executed by the computerdevice 105. The journaling module 130 may be implemented in computerlanguages such as PASCAL, C, C++, JAVA, etc.

As shown in FIG. 6, the computer device 105 includes one or moreprocessors, such as processor 602 that provide an execution platform forembodiments of the journaling module 130. Commands and data from theprocessor 602 are communicated over a communication bus 604. Thecomputer device 105 also includes a main memory 606, such as a RandomAccess Memory (RAM), where the journaling module 130 may be executedduring runtime, and a secondary memory 608. The secondary memory 608includes, for example, a hard disk drive 610 and/or a removable storagedrive 612, representing a floppy diskette drive, a magnetic tape drive,a compact disk drive, flash drive, etc., where a copy of a computerprogram embodiment for the journaling module 130 may be stored. Theremovable storage drive 612 reads from and/or writes to a removablestorage unit 614 in a well-known manner. A user interfaces with thejournaling module 130 with a keyboard 616, a mouse 618, and a display620. The display adapter 622 interfaces with the communication bus 604and the display 620. The display adapter 622 also receives display datafrom the processor 602 and converts the display data into displaycommands for the display 620.

Certain embodiments may be performed as a computer program. The computerprogram may exist in a variety of forms both active and inactive. Forexample, the computer program can exist as software program(s) comprisedof program instructions in source code, object code, executable code orother formats; firmware program(s); or hardware description language(HDL) files. Any of the above can be embodied on a computer readablemedium, which include storage devices and signals, in compressed oruncompressed form. Exemplary computer readable storage devices includeconventional computer system RAM (random access memory), ROM (read-onlymemory), EPROM (erasable, programmable ROM), EEPROM (electricallyerasable, programmable ROM), and magnetic or optical disks or tapes.Exemplary computer readable signals, whether modulated using a carrieror not, are signals that a computer system hosting or running thepresent invention can be configured to access, including signalsdownloaded through the Internet or other networks. Concrete examples ofthe foregoing include distribution of executable software program(s) ofthe computer program on a CD-ROM or via Internet download. In a sense,the Internet itself, as an abstract entity, is a computer readablemedium. The same is true of computer networks in general.

While the invention has been described with reference to the exemplaryembodiments thereof, those skilled in the art will be able to makevarious modifications to the described embodiments without departingfrom the true spirit and scope. The terms and descriptions used hereinare set forth by way of illustration only and are not meant aslimitations. In particular, although the method has been described byexamples, the steps of the method may be performed in a different orderthan illustrated or simultaneously. Those skilled in the art willrecognize that these and other variations are possible within the spiritand scope as defined in the following claims and their equivalents.

1. A method of displaying information, the method comprising: monitoringany user activity within at least one application executing on acomputer; detecting a completion of a user activity; creating a link tothe completed user activity; and placing in the link in a time-orderedsequential basis in a journal section of a desktop of the computer. 2.The method of claim 1, further comprising: logging an end time of thecompletion of the user activity; and including the end time in the link.3. The method of claim 1, further comprising; associating a graphicalicon with the user activity; and including the graphical icon in thelink.
 4. The method of claim 1, further comprising: detecting an end ofsession for the computer; and storing information contained in thejournal section of the desktop in persistent storage.
 5. The method ofclaim 4, further comprising: detecting a start of a session for thecomputer; retrieving the information from the journal section; anddisplaying the information in the journal section within the on-linedesktop.
 6. The method of claim 1, wherein the monitoring of anyactivity further comprises: collecting any on-line user activity of theuser through a browser; sorting the on-line user activity based on apredetermined criteria; and displaying the ordered websites associatedthe on-line user activity within the desktop.
 7. An apparatus fordisplaying information, the apparatus comprising: an application programinterface configured to monitor and query an operating system executingon a a computer; a user interface configured to receive displaycommands; and a journaling module configured to couple with theapplication program interface and the user interface, wherein thejournaling module can be configured to monitor any user activity withinat least one application executing on a compute through the applicationprogram interfacer; to detect a completion of a user activity; to createa link to the completed user activity; and to display the link in atime-ordered sequential basis in a journal section of a desktop of thecomputer trough the user interface.
 8. The apparatus of claim 7, whereinthe journaling module is further configured to log an end time of thecompletion of the user activity and to include the end time in the link.9. The apparatus of claim 7, wherein the journaling module is furtherconfigured to associate a graphical icon with the user activity; and toinclude the graphical icon in the link.
 10. The apparatus of claim 7,wherein the journaling module is further configured to detect an end ofsession for the computer; and to store information contained in thejournal section of the desktop in persistent storage.
 11. The apparatusof claim 10, wherein the journaling module is further configured todetect a start of a session for the computer; to retrieve theinformation from the journal section; and to display the information inthe journal section within the on-line desktop.
 12. The apparatus ofclaim 7, wherein the journaling module is further configured to collectany on-line user activity of the user through a browser; to sort theon-line user activity based on a predetermined criteria; and to displaythe ordered websites associated the on-line user activity within thedesktop.
 13. A system for displaying information, the system comprising:an operating system configured to provide an application space for theexecution of applications and the use of data; a network interfaceconfigured to couple with the Internet; and a monitoring moduleconfigured to be executing within the application space, wherein themonitoring module is configured to monitor any user activity within atleast one application executing on a compute through the applicationprogram interfacer; to detect a completion of a user activity; to createa link to the completed user activity, and to display the link in atime-ordered sequential basis in a journal section of a desktop of thecomputer through the user interface.
 14. The system of claim 13, whereinthe monitoring module is further configured to log an end time of thecompletion of the user activity and to include the end time in the link.15. The system of claim 13, wherein the monitoring module is furtherconfigured to associate a graphical icon with the user activity; and toinclude the graphical icon in the link.
 16. The system of claim 13,wherein the monitoring module is further configured to detect an end ofsession for the computer; and to store information contained in thejournal section of the desktop in persistent storage.
 17. The system ofclaim 16, wherein the monitoring module is further configured to detecta start of a session for the computer; to retrieve the information fromthe journal section; and to display the information in the journalsection within the on-line desktop.
 18. The system of claim 13, whereinthe journaling module is further configured to collect any on-line useractivity of the user through a browser; to sort the on-line useractivity based on a predetermined criteria; and to display the orderedwebsites associated the on-line user activity within the desktop.